Various techniques exist to arrange substantially simultaneous transmission of multimedia content to a plurality of receivers. Aiming at various one-to-many communication scenarios, multicast is a technology to deliver information to a group of users simultaneously, with a unique efficiency advantage because it creates copies of information only when users' routes split. Multicast is widely used for delivering multimedia contents over packet networks, such as video broadcasting and network conference. Multicast has become an essential building block of Internet Protocol version 6 (IPv6).
Depending on network conditions and local computing resources, mobile terminals of a multicast system may have limited capacity in receiving and playing full-quality multimedia contents, leading to inferior playback quality and degraded user experience. For example, a 256 Kbps IPTV livecast may overrun a general packet radio service (GPRS) network, and another 128 Kbps Moving Picture Experts Group (MPEG) 4 movie may simply exceed the computing capacity of most mobile devices.
Therefore, multimedia contents need to be tailored before being delivered via the network. Resolution downsizing, frame dropping, encoding type conversion or their combinations are known techniques for this purpose. As an important approach to this problem, to make efficient use of network and terminal capacities, scalable encoding may be used. A multimedia stream may be divided into multiple sub-streams, namely descriptions. Each description can be further divided into a base layer (BL) and an enhancement layer (EL). Information on subscribers' available bandwidth in a multicast session is required when determining bit rate allocation for each layer. However, in actual application environments, the available bandwidth, on which a layered encoding depends on, cannot be accurately and reliably derived from prior knowledge since to the available bandwidth is affected by many dynamic factors, such as network congestion.
Bit allocation schemes with awareness of user bandwidth have been developed, but these schemes are optimized for a single user. However, in a typical multicast system, overall video quality of a group of users should be optimized. A transcoder should be able to encode a video stream to meet the requirements of the entire group of users, each of which may have very different capacities.